package com.yidu.ladder.base.service;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

import com.yidu.ladder.base.domain.Area;
import com.yidu.ladder.base.domain.AreaVo;

/**
 * 区域业务逻辑接口
 * @author lw
 * @since 2020/1/10
 */
public interface AreaService {
	/**
	 * 查询所有
	 * @return
	 */
	public List<Area> findAll();
	
	/**
	 * 查询所有的省
	 * @return
	 */
	public List<Area> queryAllProvince();
	
	/**
	 * 查某个省下的所有市
	 * @param province
	 * @return
	 */
	public List<Area> queryAllCity(String province);
	
	/**
	 * 查某个市下的所有县（区）
	 * @param city
	 * @return
	 */
	public List<Area> queryAllDistrict(String city);
	
	/**
	 * 添加
	 * @param area
	 * @return
	 */
	public boolean addArea(Area area);
	
	/**
	 * 
	 * @param list
	 */
	public void saveBath(List<String[]> list);
	
	/**
	 * 查询所有带条件分页
	 * @param areaVo
	 * @return
	 */
	public Map<String,Object> findAllAreaWithPage(AreaVo areaVo);
	
	/**
	 * 修改
	 * @param area
	 * @return
	 */
	public boolean updataArea(Area area);
	
	/**
	 * 逻辑删除或还原
	 * @param areaIdStr
	 * @param flag
	 * @return
	 */
	public boolean frozenORrecoverArea(String areaIdStr,boolean flag);
	
	/**
	 * 批量插入
	 * @param in
	 * @param file
	 * @throws Exception
	 */
	public void insertdb(InputStream in, MultipartFile file) throws Exception;
}
